import {getIndexData} from "../../service/index";

Page({
  data: {
    slides: [],
    goods: [],
    page: 1,
    isLoading: false,
    search: {},
    isFirst: true,
    isLast: false
  },
  onLoad() {
    this.getData()
  },

  /**
   * tab标签点击事件
   */
  onClick(event) {
    const {index} = event.detail

    if(index == 0) this.setData({search: {sales: 1}})
    if(index == 1) this.setData({search: {recommend: 1}})
    if(index == 2) this.setData({search: {new: 1}})

    // 标签页切换的时候, 重置数据
    this.setData({
      page: 1,
      goods: []
    })
    this.getData()
  },

  /**
   * 触底加载更多
   */
  onReachBottom() {
    if(this.data.isLast) return

    this.setData({
      page: this.data.page + 1
    })
    this.getData()
  },

  /**
   * 获取数据
   */
  getData() {
    this.setData({
      isLoading: true
    })
    // 请求参数
    const params = {
      page: this.data.page,
      ...this.data.search // 将不同的搜索条件, 展开放到data里面作为参数传递
    }
    // 使用统一管理的API来请求数据
    getIndexData(params).then(res => {
      this.setData({
        isLoading: false
      })

      const {per_page, data} = res.goods

      // 只有在第一次请求,才设置轮播图
      if (this.data.isFirst) {
        this.setData({
          slides: res.slides,
          isFirst: false
        })
      }

      this.setData({
        goods: [...this.data.goods, ...data] // 将新的商品数据, 追加到旧的商品列表里面
      })

      // 判断是否是最后一页
      if(data.length < per_page) {
        this.setData({
          isLast: true
        })
      }
    })

  }
})